﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OOAD_Project_Editor.Foundation;
using OOAD_Project_Editor.Domain;
using OOAD_Project_Engine.Foundation.Interfaces;
using OOAD_Project_Engine.Domain.Entities;
using OOAD_Project_Editor.Foundation.Script;

namespace OOAD_Project_Editor.Application
{
    public interface IManageSceneHandler
    {
        event EventHandler<SceneUpdateEventArgs> OnFormUpdate;
        

        IActionHandler ActionHandler { get; }
        IEditableSceneComponent CurrentScene { get; }
        void CreateEmptyScene();
        void SetManageScene(SceneScript script);

        void SelectEntityByName(string name);
        void DuplicateEntity(string name, IEntity entity);
        void RemoveEntity(IEntity entity);

        void CutEntity();
        void CopyEntity();
        void PasteEntity();


        void RemoveEntityComponent(IEntity entity, IEntityComponent component);
        void AddEntityComponent(IEntity entity, Type componentType, params object[] param);

        void OnMouseDown();
        void OnMouseMove();
        void OnMouseUp();

    }
}
